等待/唤醒机制
wait() :会让线程处于等待状态，其实就是将线程临时存储到了线程池中
notify() :会唤醒线程池中任意一个等待的线程
notifyAll() :会唤醒线程池中所有的等待的线程

这些方法必须使用在同步中，因为必须要表示wait，notify等方法所属的锁
同一个锁上的notify只能唤醒该锁上的wait线程

this.wait();
this.notify();

obj.wait();
obj.notify();
如果线程池中有多个wait，则唤醒任意一个

锁就相当于标记每个池子的一个记号

为什么这些方法定义在Object类中
因为这些方法必须标识所属的锁，而锁可以是任意对象，对象可以调用的方法必然是Object类中的方法